<?php

/**
 *
 * @author Erick Tarzia
 * 07/02/2013
 *
 */

class Crud {
	function pegarPrimaria($tabela) {
		// $keys = Array ();
		$queryChave = sprintf ( "SHOW KEYS FROM `%s`", $tabela );
		$resultChave = mysql_query ( $queryChave ) or die ( "Erro: " . mysql_error () );
		
		while ( $rowChave = mysql_fetch_assoc ( $resultChave ) ) {
			if ($rowChave ['Key_name'] == 'PRIMARY') {
				$chavePrimaria = $rowChave ['Column_name'];
			}
		}
		
		return $chavePrimaria;
	}
	public function AntiInjection($param) {
		$param = strip_tags ( $param ); // retirar as tags html
		
		$param = mysql_escape_string ( $param ); // Retirar todas tags referentes
		                                         // do
		                                         // mysql ex: select, insert,
		                                         // update drop
		                                         // etc...
		
		return $param;
	}
	public function retornarCamposTabela($tabela) {
		$campos = array ();
		
		$result = mysql_query ( "SHOW COLUMNS FROM " . $tabela ); // descobrir os
		                                                          // campos da
		                                                          // tabela
		while ( $campo = mysql_fetch_assoc ( $result ) ) {
			$campos [] = $campo ['Field'];
		}
		unset ( $campos [0] ); // retirar o primeiro campo da lista
		                       
		// listar os dados do array
		/*
		 * foreach ( $campos as $valores ) { echo $valores . "<br>"; }
		 */
		// retorna um array com todos os campos da tabel menos o primeiro(id)
		return $campos;
	}
	public function inserir($table, $array) {
		$insert = "INSERT INTO " . $table;
		
		$columns = $this->retornarCamposTabela ( $table );
		$data = array ();
		
		foreach ( $array as $key => $value ) {
			
			if ($value != "") {
				$data [] = "'" . $value . "'";
			} else {
				$data [] = "NULL";
			}
		}
		
		$cols = implode ( ",", $columns );
		$values = implode ( ",", $data );
		
		$sql = $insert . " (" . $cols . ") " . " VALUES " . " (" . $values . ") ";
		$this->query ( $sql );
	}

	public function listar($nomeDaTabela, $campos) {
            //adicionado
            $campos = explode(',', $campos);
            
            var_dump($campos);
            
            //fim
		$chavePrimaria0 = $this->pegarPrimaria ( $nomeDaTabela );
		$result = mysql_query ( "SHOW COLUMNS FROM " . $nomeDaTabela );
		
		if (! $result) {
			echo 'Erro: ' . mysql_error ();
			exit ();
		}
		
		$totalDeCampos = mysql_num_rows ( $result ); // total de campos da tabela
		
		$lista = mysql_query ( "select * from " . $nomeDaTabela );
		
		// listar os dados
		echo '<table align="center">';
		echo '	<tr>';
		$z = 0;
		while ( $row = mysql_fetch_assoc ( $result ) ) {
			echo '		<td>';
			$nome [$z] = $row ['Field'];
			$tipo [$z] = $row ['Type'];
			
			echo "<strong>" . $nome [$z] . "</strong>";
			$z ++;
			
			echo '		</td>';
		}
		
		echo '	</tr>';
		
		$w = 0;
		
		while ( $linha = mysql_fetch_assoc ( $lista ) ) {
			echo '<tr>';
			
			for($w = 0; $w < $totalDeCampos; $w ++) {
				
				echo '<td>';
				echo $linha [$nome [$w]];
				echo '</td>';
			}
			
			echo '</tr>';
		}
		echo '</table>';
	}
	public function apagar($tabela, $id) {
		$chavePrimaria = $this->pegarPrimaria ( $tabela );
		echo $chavePrimaria;
		$queryApagar = "DELETE FROM " . $tabela . " where " . $chavePrimaria . " = " . $id;
		$this->query ( $queryApagar );
	}
	public function query($sql) {
		$q = mysql_query ( $sql );
		if ($q) {
			echo "<script>alert('Concluído');</script>";
		} else {
			echo "<script>alert('Erro: " . mysql_errno () . "');</script>";
		}
	}
} 
